<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>edges_image [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_filters.html">过滤器</a> / <a href="toc_filters_edges.html">Edges</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">edges_image</span><span data-if="c" style="display:none;">edges_image</span><span data-if="cpp" style="display:none;">EdgesImage</span><span data-if="dotnet" style="display:none;">EdgesImage</span><span data-if="python" style="display:none;">edges_image</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">edges_image</span><span data-if="c" style="display:none;">edges_image</span><span data-if="cpp" style="display:none;">EdgesImage</span><span data-if="dotnet" style="display:none;">EdgesImage</span><span data-if="python" style="display:none;">edges_image</span></code> — Extract edges using Deriche, Lanser, Shen, or Canny filters.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>edges_image</b>(<a href="#Image"><i>Image</i></a> : <a href="#ImaAmp"><i>ImaAmp</i></a>, <a href="#ImaDir"><i>ImaDir</i></a> : <a href="#Filter"><i>Filter</i></a>, <a href="#Alpha"><i>Alpha</i></a>, <a href="#NMS"><i>NMS</i></a>, <a href="#Low"><i>Low</i></a>, <a href="#High"><i>High</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>edges_image</b>(const Hobject <a href="#Image"><i>Image</i></a>, Hobject* <a href="#ImaAmp"><i>ImaAmp</i></a>, Hobject* <a href="#ImaDir"><i>ImaDir</i></a>, const char* <a href="#Filter"><i>Filter</i></a>, double <a href="#Alpha"><i>Alpha</i></a>, const char* <a href="#NMS"><i>NMS</i></a>, const Hlong <a href="#Low"><i>Low</i></a>, const Hlong <a href="#High"><i>High</i></a>)</code></p>
<p>
<code>Herror <b>T_edges_image</b>(const Hobject <a href="#Image"><i>Image</i></a>, Hobject* <a href="#ImaAmp"><i>ImaAmp</i></a>, Hobject* <a href="#ImaDir"><i>ImaDir</i></a>, const Htuple <a href="#Filter"><i>Filter</i></a>, const Htuple <a href="#Alpha"><i>Alpha</i></a>, const Htuple <a href="#NMS"><i>NMS</i></a>, const Htuple <a href="#Low"><i>Low</i></a>, const Htuple <a href="#High"><i>High</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>EdgesImage</b>(const HObject&amp; <a href="#Image"><i>Image</i></a>, HObject* <a href="#ImaAmp"><i>ImaAmp</i></a>, HObject* <a href="#ImaDir"><i>ImaDir</i></a>, const HTuple&amp; <a href="#Filter"><i>Filter</i></a>, const HTuple&amp; <a href="#Alpha"><i>Alpha</i></a>, const HTuple&amp; <a href="#NMS"><i>NMS</i></a>, const HTuple&amp; <a href="#Low"><i>Low</i></a>, const HTuple&amp; <a href="#High"><i>High</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>EdgesImage</b>(HImage* <a href="#ImaDir"><i>ImaDir</i></a>, const HString&amp; <a href="#Filter"><i>Filter</i></a>, double <a href="#Alpha"><i>Alpha</i></a>, const HString&amp; <a href="#NMS"><i>NMS</i></a>, const HTuple&amp; <a href="#Low"><i>Low</i></a>, const HTuple&amp; <a href="#High"><i>High</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>EdgesImage</b>(HImage* <a href="#ImaDir"><i>ImaDir</i></a>, const HString&amp; <a href="#Filter"><i>Filter</i></a>, double <a href="#Alpha"><i>Alpha</i></a>, const HString&amp; <a href="#NMS"><i>NMS</i></a>, Hlong <a href="#Low"><i>Low</i></a>, Hlong <a href="#High"><i>High</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>EdgesImage</b>(HImage* <a href="#ImaDir"><i>ImaDir</i></a>, const char* <a href="#Filter"><i>Filter</i></a>, double <a href="#Alpha"><i>Alpha</i></a>, const char* <a href="#NMS"><i>NMS</i></a>, Hlong <a href="#Low"><i>Low</i></a>, Hlong <a href="#High"><i>High</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>EdgesImage</b>(HImage* <a href="#ImaDir"><i>ImaDir</i></a>, const wchar_t* <a href="#Filter"><i>Filter</i></a>, double <a href="#Alpha"><i>Alpha</i></a>, const wchar_t* <a href="#NMS"><i>NMS</i></a>, Hlong <a href="#Low"><i>Low</i></a>, Hlong <a href="#High"><i>High</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>EdgesImage</b>(<a href="HObject.html">HObject</a> <a href="#Image"><i>image</i></a>, out <a href="HObject.html">HObject</a> <a href="#ImaAmp"><i>imaAmp</i></a>, out <a href="HObject.html">HObject</a> <a href="#ImaDir"><i>imaDir</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Filter"><i>filter</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Alpha"><i>alpha</i></a>, <a href="HTuple.html">HTuple</a> <a href="#NMS"><i>NMS</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Low"><i>low</i></a>, <a href="HTuple.html">HTuple</a> <a href="#High"><i>high</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>EdgesImage</b>(out <a href="HImage.html">HImage</a> <a href="#ImaDir"><i>imaDir</i></a>, string <a href="#Filter"><i>filter</i></a>, double <a href="#Alpha"><i>alpha</i></a>, string <a href="#NMS"><i>NMS</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Low"><i>low</i></a>, <a href="HTuple.html">HTuple</a> <a href="#High"><i>high</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>EdgesImage</b>(out <a href="HImage.html">HImage</a> <a href="#ImaDir"><i>imaDir</i></a>, string <a href="#Filter"><i>filter</i></a>, double <a href="#Alpha"><i>alpha</i></a>, string <a href="#NMS"><i>NMS</i></a>, int <a href="#Low"><i>low</i></a>, int <a href="#High"><i>high</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>edges_image</b>(<a href="#Image"><i>image</i></a>: HObject, <a href="#Filter"><i>filter</i></a>: str, <a href="#Alpha"><i>alpha</i></a>: float, <a href="#NMS"><i>nms</i></a>: str, <a href="#Low"><i>low</i></a>: Union[int, float], <a href="#High"><i>high</i></a>: Union[int, float]) -&gt; Tuple[HObject, HObject]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> detects step edges using recursively implemented
filters (according to Deriche, Lanser and Shen) or the
conventionally implemented “derivative of Gaussian” filter (using
filter masks) proposed by Canny.  Furthermore, a very fast variant
of the Sobel filter can be used.  Thus, the following edge operators
are available:
</p>
<p><i><span data-if="hdevelop" style="display:inline">'deriche1'</span><span data-if="c" style="display:none">"deriche1"</span><span data-if="cpp" style="display:none">"deriche1"</span><span data-if="com" style="display:none">"deriche1"</span><span data-if="dotnet" style="display:none">"deriche1"</span><span data-if="python" style="display:none">"deriche1"</span></i>, <i><span data-if="hdevelop" style="display:inline">'lanser1'</span><span data-if="c" style="display:none">"lanser1"</span><span data-if="cpp" style="display:none">"lanser1"</span><span data-if="com" style="display:none">"lanser1"</span><span data-if="dotnet" style="display:none">"lanser1"</span><span data-if="python" style="display:none">"lanser1"</span></i>, <i><span data-if="hdevelop" style="display:inline">'deriche1_int4'</span><span data-if="c" style="display:none">"deriche1_int4"</span><span data-if="cpp" style="display:none">"deriche1_int4"</span><span data-if="com" style="display:none">"deriche1_int4"</span><span data-if="dotnet" style="display:none">"deriche1_int4"</span><span data-if="python" style="display:none">"deriche1_int4"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'deriche2'</span><span data-if="c" style="display:none">"deriche2"</span><span data-if="cpp" style="display:none">"deriche2"</span><span data-if="com" style="display:none">"deriche2"</span><span data-if="dotnet" style="display:none">"deriche2"</span><span data-if="python" style="display:none">"deriche2"</span></i>, <i><span data-if="hdevelop" style="display:inline">'lanser2'</span><span data-if="c" style="display:none">"lanser2"</span><span data-if="cpp" style="display:none">"lanser2"</span><span data-if="com" style="display:none">"lanser2"</span><span data-if="dotnet" style="display:none">"lanser2"</span><span data-if="python" style="display:none">"lanser2"</span></i>, <i><span data-if="hdevelop" style="display:inline">'deriche2_int4'</span><span data-if="c" style="display:none">"deriche2_int4"</span><span data-if="cpp" style="display:none">"deriche2_int4"</span><span data-if="com" style="display:none">"deriche2_int4"</span><span data-if="dotnet" style="display:none">"deriche2_int4"</span><span data-if="python" style="display:none">"deriche2_int4"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'shen'</span><span data-if="c" style="display:none">"shen"</span><span data-if="cpp" style="display:none">"shen"</span><span data-if="com" style="display:none">"shen"</span><span data-if="dotnet" style="display:none">"shen"</span><span data-if="python" style="display:none">"shen"</span></i>, <i><span data-if="hdevelop" style="display:inline">'mshen'</span><span data-if="c" style="display:none">"mshen"</span><span data-if="cpp" style="display:none">"mshen"</span><span data-if="com" style="display:none">"mshen"</span><span data-if="dotnet" style="display:none">"mshen"</span><span data-if="python" style="display:none">"mshen"</span></i>, <i><span data-if="hdevelop" style="display:inline">'canny'</span><span data-if="c" style="display:none">"canny"</span><span data-if="cpp" style="display:none">"canny"</span><span data-if="com" style="display:none">"canny"</span><span data-if="dotnet" style="display:none">"canny"</span><span data-if="python" style="display:none">"canny"</span></i>,
and <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i>
</p>
<p>(parameter <a href="#Filter"><i><code><span data-if="hdevelop" style="display:inline">Filter</span><span data-if="c" style="display:none">Filter</span><span data-if="cpp" style="display:none">Filter</span><span data-if="com" style="display:none">Filter</span><span data-if="dotnet" style="display:none">filter</span><span data-if="python" style="display:none">filter</span></code></i></a>).
</p>
<p>The edge amplitudes (gradient magnitude) are returned in
<a href="#ImaAmp"><i><code><span data-if="hdevelop" style="display:inline">ImaAmp</span><span data-if="c" style="display:none">ImaAmp</span><span data-if="cpp" style="display:none">ImaAmp</span><span data-if="com" style="display:none">ImaAmp</span><span data-if="dotnet" style="display:none">imaAmp</span><span data-if="python" style="display:none">ima_amp</span></code></i></a>.
</p>
<p>For all filters except <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i>, the edge directions
are returned in <a href="#ImaDir"><i><code><span data-if="hdevelop" style="display:inline">ImaDir</span><span data-if="c" style="display:none">ImaDir</span><span data-if="cpp" style="display:none">ImaDir</span><span data-if="com" style="display:none">ImaDir</span><span data-if="dotnet" style="display:none">imaDir</span><span data-if="python" style="display:none">ima_dir</span></code></i></a>.  For <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i>, the
edge direction is not computed to speed up the filter.
Consequently, <a href="#ImaDir"><i><code><span data-if="hdevelop" style="display:inline">ImaDir</span><span data-if="c" style="display:none">ImaDir</span><span data-if="cpp" style="display:none">ImaDir</span><span data-if="com" style="display:none">ImaDir</span><span data-if="dotnet" style="display:none">imaDir</span><span data-if="python" style="display:none">ima_dir</span></code></i></a> is an empty image object.
The edge operators <i><span data-if="hdevelop" style="display:inline">'deriche1'</span><span data-if="c" style="display:none">"deriche1"</span><span data-if="cpp" style="display:none">"deriche1"</span><span data-if="com" style="display:none">"deriche1"</span><span data-if="dotnet" style="display:none">"deriche1"</span><span data-if="python" style="display:none">"deriche1"</span></i> respectively <i><span data-if="hdevelop" style="display:inline">'deriche2'</span><span data-if="c" style="display:none">"deriche2"</span><span data-if="cpp" style="display:none">"deriche2"</span><span data-if="com" style="display:none">"deriche2"</span><span data-if="dotnet" style="display:none">"deriche2"</span><span data-if="python" style="display:none">"deriche2"</span></i> are
also available for int4-images, and return the signed filter response instead
of its absolute value.  This behavior can be obtained for byte-images as
well by selecting <i><span data-if="hdevelop" style="display:inline">'deriche1_int4'</span><span data-if="c" style="display:none">"deriche1_int4"</span><span data-if="cpp" style="display:none">"deriche1_int4"</span><span data-if="com" style="display:none">"deriche1_int4"</span><span data-if="dotnet" style="display:none">"deriche1_int4"</span><span data-if="python" style="display:none">"deriche1_int4"</span></i> respectively
<i><span data-if="hdevelop" style="display:inline">'deriche2_int4'</span><span data-if="c" style="display:none">"deriche2_int4"</span><span data-if="cpp" style="display:none">"deriche2_int4"</span><span data-if="com" style="display:none">"deriche2_int4"</span><span data-if="dotnet" style="display:none">"deriche2_int4"</span><span data-if="python" style="display:none">"deriche2_int4"</span></i> as filter.
This can be used to calculate the second derivative of an image by
applying <code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> (with parameter value <i><span data-if="hdevelop" style="display:inline">'lanser2'</span><span data-if="c" style="display:none">"lanser2"</span><span data-if="cpp" style="display:none">"lanser2"</span><span data-if="com" style="display:none">"lanser2"</span><span data-if="dotnet" style="display:none">"lanser2"</span><span data-if="python" style="display:none">"lanser2"</span></i>) to the
signed first derivative.  Edge directions are stored in 2-degree
steps, i.e., an edge direction of x degrees in mathematically
positive sense and with respect to
the horizontal axis is stored as x / 2 in the edge
direction image.  Furthermore, the direction of the change of
intensity is taken into account.  Let <span title="1" style="vertical-align:-0.363664em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.57361em" height="1.15724em" viewBox="0 0 57.177795 18.515915">
<!-- Original BoundingBox: -28.588898 -9.257965 28.588898 9.257950 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_120">
      <path style="fill-rule: evenodd;" d="M249.000000 -106.000000C239.000000 -72.000000,206.000000 -18.000000,155.000000 -18.000000C152.000000 -18.000000,122.000000 -18.000000,101.000000 -32.000000C142.000000 -45.000000,145.000000 -81.000000,145.000000 -87.000000C145.000000 -109.000000,128.000000 -124.000000,105.000000 -124.000000C77.000000 -124.000000,48.000000 -100.000000,48.000000 -63.000000C48.000000 -13.000000,104.000000 10.000000,153.000000 10.000000C199.000000 10.000000,240.000000 -19.000000,265.000000 -61.000000C289.000000 -8.000000,344.000000 10.000000,384.000000 10.000000C499.000000 10.000000,560.000000 -115.000000,560.000000 -143.000000C560.000000 -156.000000,547.000000 -156.000000,544.000000 -156.000000C530.000000 -156.000000,529.000000 -151.000000,525.000000 -139.000000C504.000000 -70.000000,444.000000 -18.000000,388.000000 -18.000000C348.000000 -18.000000,327.000000 -45.000000,327.000000 -83.000000C327.000000 -109.000000,351.000000 -200.000000,379.000000 -311.000000C399.000000 -388.000000,444.000000 -413.000000,477.000000 -413.000000C479.000000 -413.000000,510.000000 -413.000000,531.000000 -399.000000C499.000000 -390.000000,487.000000 -362.000000,487.000000 -344.000000C487.000000 -322.000000,504.000000 -307.000000,527.000000 -307.000000C550.000000 -307.000000,583.000000 -326.000000,583.000000 -368.000000C583.000000 -424.000000,519.000000 -441.000000,479.000000 -441.000000C429.000000 -441.000000,389.000000 -408.000000,367.000000 -370.000000C349.000000 -411.000000,303.000000 -441.000000,247.000000 -441.000000C135.000000 -441.000000,71.000000 -318.000000,71.000000 -288.000000C71.000000 -275.000000,85.000000 -275.000000,88.000000 -275.000000C101.000000 -275.000000,102.000000 -279.000000,107.000000 -292.000000C132.000000 -370.000000,195.000000 -413.000000,244.000000 -413.000000C277.000000 -413.000000,304.000000 -395.000000,304.000000 -347.000000C304.000000 -327.000000,292.000000 -277.000000,283.000000 -243.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_121">
      <path style="fill-rule: evenodd;" d="M556.000000 -377.000000C560.000000 -391.000000,560.000000 -393.000000,560.000000 -399.000000C560.000000 -419.000000,544.000000 -431.000000,527.000000 -431.000000C516.000000 -431.000000,497.000000 -426.000000,486.000000 -407.000000C483.000000 -401.000000,475.000000 -369.000000,470.000000 -349.000000L449.000000 -266.000000C443.000000 -242.000000,412.000000 -116.000000,409.000000 -105.000000C408.000000 -105.000000,364.000000 -18.000000,286.000000 -18.000000C218.000000 -18.000000,218.000000 -83.000000,218.000000 -101.000000C218.000000 -155.000000,241.000000 -218.000000,271.000000 -295.000000C283.000000 -327.000000,288.000000 -339.000000,288.000000 -356.000000C288.000000 -404.000000,247.000000 -441.000000,193.000000 -441.000000C92.000000 -441.000000,47.000000 -305.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C107.000000 -374.000000,150.000000 -413.000000,190.000000 -413.000000C207.000000 -413.000000,215.000000 -402.000000,215.000000 -378.000000C215.000000 -355.000000,206.000000 -333.000000,201.000000 -320.000000C153.000000 -198.000000,143.000000 -161.000000,143.000000 -117.000000C143.000000 -100.000000,143.000000 -53.000000,182.000000 -21.000000C213.000000 5.000000,255.000000 10.000000,282.000000 10.000000C322.000000 10.000000,358.000000 -5.000000,391.000000 -35.000000C378.000000 20.000000,367.000000 62.000000,325.000000 112.000000C298.000000 143.000000,258.000000 176.000000,205.000000 176.000000C198.000000 176.000000,151.000000 176.000000,130.000000 143.000000C184.000000 137.000000,184.000000 89.000000,184.000000 88.000000C184.000000 56.000000,155.000000 50.000000,145.000000 50.000000C120.000000 50.000000,87.000000 70.000000,87.000000 116.000000C87.000000 167.000000,135.000000 204.000000,206.000000 204.000000C307.000000 204.000000,430.000000 126.000000,461.000000 1.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_91">
      <path style="fill-rule: evenodd;" d="M255.000000 250.000000L255.000000 210.000000L158.000000 210.000000L158.000000 -710.000000L255.000000 -710.000000L255.000000 -750.000000L118.000000 -750.000000L118.000000 250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_93">
      <path style="fill-rule: evenodd;" d="M159.000000 -750.000000L22.000000 -750.000000L22.000000 -710.000000L119.000000 -710.000000L119.000000 210.000000L22.000000 210.000000L22.000000 250.000000L159.000000 250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_59">
      <path style="fill-rule: evenodd;" d="M203.000000 -1.000000C203.000000 -67.000000,178.000000 -106.000000,139.000000 -106.000000C106.000000 -106.000000,86.000000 -81.000000,86.000000 -53.000000C86.000000 -26.000000,106.000000 -0.000000,139.000000 -0.000000C151.000000 -0.000000,164.000000 -4.000000,174.000000 -13.000000C177.000000 -15.000000,178.000000 -16.000000,179.000000 -16.000000C180.000000 -16.000000,181.000000 -15.000000,181.000000 -1.000000C181.000000 73.000000,146.000000 133.000000,113.000000 166.000000C102.000000 177.000000,102.000000 179.000000,102.000000 182.000000C102.000000 189.000000,107.000000 193.000000,112.000000 193.000000C123.000000 193.000000,203.000000 116.000000,203.000000 -1.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_69">
      <path style="fill-rule: evenodd;" d="M708.000000 -233.000000C710.000000 -238.000000,713.000000 -245.000000,713.000000 -247.000000C713.000000 -248.000000,713.000000 -258.000000,701.000000 -258.000000C692.000000 -258.000000,690.000000 -252.000000,688.000000 -246.000000C623.000000 -98.000000,586.000000 -31.000000,415.000000 -31.000000L269.000000 -31.000000C255.000000 -31.000000,253.000000 -31.000000,247.000000 -32.000000C237.000000 -33.000000,234.000000 -34.000000,234.000000 -42.000000C234.000000 -45.000000,234.000000 -47.000000,239.000000 -65.000000L307.000000 -338.000000L406.000000 -338.000000C491.000000 -338.000000,491.000000 -317.000000,491.000000 -292.000000C491.000000 -285.000000,491.000000 -273.000000,484.000000 -243.000000C482.000000 -238.000000,481.000000 -235.000000,481.000000 -232.000000C481.000000 -227.000000,485.000000 -221.000000,494.000000 -221.000000C502.000000 -221.000000,505.000000 -226.000000,509.000000 -241.000000L566.000000 -475.000000C566.000000 -481.000000,561.000000 -486.000000,554.000000 -486.000000C545.000000 -486.000000,543.000000 -480.000000,540.000000 -468.000000C519.000000 -392.000000,501.000000 -369.000000,409.000000 -369.000000L315.000000 -369.000000L375.000000 -610.000000C384.000000 -645.000000,385.000000 -649.000000,429.000000 -649.000000L570.000000 -649.000000C692.000000 -649.000000,722.000000 -620.000000,722.000000 -538.000000C722.000000 -514.000000,722.000000 -512.000000,718.000000 -485.000000C718.000000 -479.000000,717.000000 -472.000000,717.000000 -467.000000C717.000000 -462.000000,720.000000 -455.000000,729.000000 -455.000000C740.000000 -455.000000,741.000000 -461.000000,743.000000 -480.000000L763.000000 -653.000000C766.000000 -680.000000,761.000000 -680.000000,736.000000 -680.000000L231.000000 -680.000000C211.000000 -680.000000,201.000000 -680.000000,201.000000 -660.000000C201.000000 -649.000000,210.000000 -649.000000,229.000000 -649.000000C266.000000 -649.000000,294.000000 -649.000000,294.000000 -631.000000C294.000000 -627.000000,294.000000 -625.000000,289.000000 -607.000000L157.000000 -78.000000C147.000000 -39.000000,145.000000 -31.000000,66.000000 -31.000000C49.000000 -31.000000,38.000000 -31.000000,38.000000 -12.000000C38.000000 -0.000000,47.000000 -0.000000,66.000000 -0.000000L585.000000 -0.000000C608.000000 -0.000000,609.000000 -1.000000,616.000000 -17.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.427094 12.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_91"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,4.854965 12.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_69"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,16.621887 15.088348)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_120"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,24.647354 12.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,31.732025 12.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_69"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.498932 15.088348)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_121"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,51.161057 12.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_93"></use>
  </g>
</svg></span>
denote the image gradient.  Then the following edge directions are
returned as r/2:
<span title="2" class="displaymath"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="21.7275em" height="13.2757em" viewBox="0 0 347.640045 212.411835">
<!-- Original BoundingBox: -173.820023 -106.205917 173.820023 106.205917 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_120">
      <path style="fill-rule: evenodd;" d="M249.000000 -106.000000C239.000000 -72.000000,206.000000 -18.000000,155.000000 -18.000000C152.000000 -18.000000,122.000000 -18.000000,101.000000 -32.000000C142.000000 -45.000000,145.000000 -81.000000,145.000000 -87.000000C145.000000 -109.000000,128.000000 -124.000000,105.000000 -124.000000C77.000000 -124.000000,48.000000 -100.000000,48.000000 -63.000000C48.000000 -13.000000,104.000000 10.000000,153.000000 10.000000C199.000000 10.000000,240.000000 -19.000000,265.000000 -61.000000C289.000000 -8.000000,344.000000 10.000000,384.000000 10.000000C499.000000 10.000000,560.000000 -115.000000,560.000000 -143.000000C560.000000 -156.000000,547.000000 -156.000000,544.000000 -156.000000C530.000000 -156.000000,529.000000 -151.000000,525.000000 -139.000000C504.000000 -70.000000,444.000000 -18.000000,388.000000 -18.000000C348.000000 -18.000000,327.000000 -45.000000,327.000000 -83.000000C327.000000 -109.000000,351.000000 -200.000000,379.000000 -311.000000C399.000000 -388.000000,444.000000 -413.000000,477.000000 -413.000000C479.000000 -413.000000,510.000000 -413.000000,531.000000 -399.000000C499.000000 -390.000000,487.000000 -362.000000,487.000000 -344.000000C487.000000 -322.000000,504.000000 -307.000000,527.000000 -307.000000C550.000000 -307.000000,583.000000 -326.000000,583.000000 -368.000000C583.000000 -424.000000,519.000000 -441.000000,479.000000 -441.000000C429.000000 -441.000000,389.000000 -408.000000,367.000000 -370.000000C349.000000 -411.000000,303.000000 -441.000000,247.000000 -441.000000C135.000000 -441.000000,71.000000 -318.000000,71.000000 -288.000000C71.000000 -275.000000,85.000000 -275.000000,88.000000 -275.000000C101.000000 -275.000000,102.000000 -279.000000,107.000000 -292.000000C132.000000 -370.000000,195.000000 -413.000000,244.000000 -413.000000C277.000000 -413.000000,304.000000 -395.000000,304.000000 -347.000000C304.000000 -327.000000,292.000000 -277.000000,283.000000 -243.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_121">
      <path style="fill-rule: evenodd;" d="M556.000000 -377.000000C560.000000 -391.000000,560.000000 -393.000000,560.000000 -399.000000C560.000000 -419.000000,544.000000 -431.000000,527.000000 -431.000000C516.000000 -431.000000,497.000000 -426.000000,486.000000 -407.000000C483.000000 -401.000000,475.000000 -369.000000,470.000000 -349.000000L449.000000 -266.000000C443.000000 -242.000000,412.000000 -116.000000,409.000000 -105.000000C408.000000 -105.000000,364.000000 -18.000000,286.000000 -18.000000C218.000000 -18.000000,218.000000 -83.000000,218.000000 -101.000000C218.000000 -155.000000,241.000000 -218.000000,271.000000 -295.000000C283.000000 -327.000000,288.000000 -339.000000,288.000000 -356.000000C288.000000 -404.000000,247.000000 -441.000000,193.000000 -441.000000C92.000000 -441.000000,47.000000 -305.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C107.000000 -374.000000,150.000000 -413.000000,190.000000 -413.000000C207.000000 -413.000000,215.000000 -402.000000,215.000000 -378.000000C215.000000 -355.000000,206.000000 -333.000000,201.000000 -320.000000C153.000000 -198.000000,143.000000 -161.000000,143.000000 -117.000000C143.000000 -100.000000,143.000000 -53.000000,182.000000 -21.000000C213.000000 5.000000,255.000000 10.000000,282.000000 10.000000C322.000000 10.000000,358.000000 -5.000000,391.000000 -35.000000C378.000000 20.000000,367.000000 62.000000,325.000000 112.000000C298.000000 143.000000,258.000000 176.000000,205.000000 176.000000C198.000000 176.000000,151.000000 176.000000,130.000000 143.000000C184.000000 137.000000,184.000000 89.000000,184.000000 88.000000C184.000000 56.000000,155.000000 50.000000,145.000000 50.000000C120.000000 50.000000,87.000000 70.000000,87.000000 116.000000C87.000000 167.000000,135.000000 204.000000,206.000000 204.000000C307.000000 204.000000,430.000000 126.000000,461.000000 1.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_43">
      <path style="fill-rule: evenodd;" d="M409.000000 -230.000000L688.000000 -230.000000C702.000000 -230.000000,721.000000 -230.000000,721.000000 -250.000000C721.000000 -270.000000,702.000000 -270.000000,688.000000 -270.000000L409.000000 -270.000000L409.000000 -550.000000C409.000000 -564.000000,409.000000 -583.000000,389.000000 -583.000000C369.000000 -583.000000,369.000000 -564.000000,369.000000 -550.000000L369.000000 -270.000000L89.000000 -270.000000C75.000000 -270.000000,56.000000 -270.000000,56.000000 -250.000000C56.000000 -230.000000,75.000000 -230.000000,89.000000 -230.000000L369.000000 -230.000000L369.000000 50.000000C369.000000 64.000000,369.000000 83.000000,389.000000 83.000000C409.000000 83.000000,409.000000 64.000000,409.000000 50.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_51">
      <path style="fill-rule: evenodd;" d="M290.000000 -352.000000C372.000000 -379.000000,430.000000 -449.000000,430.000000 -528.000000C430.000000 -610.000000,342.000000 -666.000000,246.000000 -666.000000C145.000000 -666.000000,69.000000 -606.000000,69.000000 -530.000000C69.000000 -497.000000,91.000000 -478.000000,120.000000 -478.000000C151.000000 -478.000000,171.000000 -500.000000,171.000000 -529.000000C171.000000 -579.000000,124.000000 -579.000000,109.000000 -579.000000C140.000000 -628.000000,206.000000 -641.000000,242.000000 -641.000000C283.000000 -641.000000,338.000000 -619.000000,338.000000 -529.000000C338.000000 -517.000000,336.000000 -459.000000,310.000000 -415.000000C280.000000 -367.000000,246.000000 -364.000000,221.000000 -363.000000C213.000000 -362.000000,189.000000 -360.000000,182.000000 -360.000000C174.000000 -359.000000,167.000000 -358.000000,167.000000 -348.000000C167.000000 -337.000000,174.000000 -337.000000,191.000000 -337.000000L235.000000 -337.000000C317.000000 -337.000000,354.000000 -269.000000,354.000000 -171.000000C354.000000 -35.000000,285.000000 -6.000000,241.000000 -6.000000C198.000000 -6.000000,123.000000 -23.000000,88.000000 -82.000000C123.000000 -77.000000,154.000000 -99.000000,154.000000 -137.000000C154.000000 -173.000000,127.000000 -193.000000,98.000000 -193.000000C74.000000 -193.000000,42.000000 -179.000000,42.000000 -135.000000C42.000000 -44.000000,135.000000 22.000000,244.000000 22.000000C366.000000 22.000000,457.000000 -69.000000,457.000000 -171.000000C457.000000 -253.000000,394.000000 -331.000000,290.000000 -352.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_54">
      <path style="fill-rule: evenodd;" d="M132.000000 -328.000000L132.000000 -352.000000C132.000000 -605.000000,256.000000 -641.000000,307.000000 -641.000000C331.000000 -641.000000,373.000000 -635.000000,395.000000 -601.000000C380.000000 -601.000000,340.000000 -601.000000,340.000000 -556.000000C340.000000 -525.000000,364.000000 -510.000000,386.000000 -510.000000C402.000000 -510.000000,432.000000 -519.000000,432.000000 -558.000000C432.000000 -618.000000,388.000000 -666.000000,305.000000 -666.000000C177.000000 -666.000000,42.000000 -537.000000,42.000000 -316.000000C42.000000 -49.000000,158.000000 22.000000,251.000000 22.000000C362.000000 22.000000,457.000000 -72.000000,457.000000 -204.000000C457.000000 -331.000000,368.000000 -427.000000,257.000000 -427.000000C189.000000 -427.000000,152.000000 -376.000000,132.000000 -328.000000M251.000000 -6.000000C188.000000 -6.000000,158.000000 -66.000000,152.000000 -81.000000C134.000000 -128.000000,134.000000 -208.000000,134.000000 -226.000000C134.000000 -304.000000,166.000000 -404.000000,256.000000 -404.000000C272.000000 -404.000000,318.000000 -404.000000,349.000000 -342.000000C367.000000 -305.000000,367.000000 -254.000000,367.000000 -205.000000C367.000000 -157.000000,367.000000 -107.000000,350.000000 -71.000000C320.000000 -11.000000,274.000000 -6.000000,251.000000 -6.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_55">
      <path style="fill-rule: evenodd;" d="M476.000000 -609.000000C485.000000 -621.000000,485.000000 -623.000000,485.000000 -644.000000L242.000000 -644.000000C120.000000 -644.000000,118.000000 -657.000000,114.000000 -676.000000L89.000000 -676.000000L56.000000 -470.000000L81.000000 -470.000000C84.000000 -486.000000,93.000000 -549.000000,106.000000 -561.000000C113.000000 -567.000000,191.000000 -567.000000,204.000000 -567.000000L411.000000 -567.000000C400.000000 -551.000000,321.000000 -442.000000,299.000000 -409.000000C209.000000 -274.000000,176.000000 -135.000000,176.000000 -33.000000C176.000000 -23.000000,176.000000 22.000000,222.000000 22.000000C268.000000 22.000000,268.000000 -23.000000,268.000000 -33.000000L268.000000 -84.000000C268.000000 -139.000000,271.000000 -194.000000,279.000000 -248.000000C283.000000 -271.000000,297.000000 -357.000000,341.000000 -419.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_56">
      <path style="fill-rule: evenodd;" d="M163.000000 -457.000000C117.000000 -487.000000,113.000000 -521.000000,113.000000 -538.000000C113.000000 -599.000000,178.000000 -641.000000,249.000000 -641.000000C322.000000 -641.000000,386.000000 -589.000000,386.000000 -517.000000C386.000000 -460.000000,347.000000 -412.000000,287.000000 -377.000000M309.000000 -362.000000C381.000000 -399.000000,430.000000 -451.000000,430.000000 -517.000000C430.000000 -609.000000,341.000000 -666.000000,250.000000 -666.000000C150.000000 -666.000000,69.000000 -592.000000,69.000000 -499.000000C69.000000 -481.000000,71.000000 -436.000000,113.000000 -389.000000C124.000000 -377.000000,161.000000 -352.000000,186.000000 -335.000000C128.000000 -306.000000,42.000000 -250.000000,42.000000 -151.000000C42.000000 -45.000000,144.000000 22.000000,249.000000 22.000000C362.000000 22.000000,457.000000 -61.000000,457.000000 -168.000000C457.000000 -204.000000,446.000000 -249.000000,408.000000 -291.000000C389.000000 -312.000000,373.000000 -322.000000,309.000000 -362.000000M209.000000 -320.000000L332.000000 -242.000000C360.000000 -223.000000,407.000000 -193.000000,407.000000 -132.000000C407.000000 -58.000000,332.000000 -6.000000,250.000000 -6.000000C164.000000 -6.000000,92.000000 -68.000000,92.000000 -151.000000C92.000000 -209.000000,124.000000 -273.000000,209.000000 -320.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_57">
      <path style="fill-rule: evenodd;" d="M367.000000 -318.000000L367.000000 -286.000000C367.000000 -52.000000,263.000000 -6.000000,205.000000 -6.000000C188.000000 -6.000000,134.000000 -8.000000,107.000000 -42.000000C151.000000 -42.000000,159.000000 -71.000000,159.000000 -88.000000C159.000000 -119.000000,135.000000 -134.000000,113.000000 -134.000000C97.000000 -134.000000,67.000000 -125.000000,67.000000 -86.000000C67.000000 -19.000000,121.000000 22.000000,206.000000 22.000000C335.000000 22.000000,457.000000 -114.000000,457.000000 -329.000000C457.000000 -598.000000,342.000000 -666.000000,253.000000 -666.000000C198.000000 -666.000000,149.000000 -648.000000,106.000000 -603.000000C65.000000 -558.000000,42.000000 -516.000000,42.000000 -441.000000C42.000000 -316.000000,130.000000 -218.000000,242.000000 -218.000000C303.000000 -218.000000,344.000000 -260.000000,367.000000 -318.000000M243.000000 -241.000000C227.000000 -241.000000,181.000000 -241.000000,150.000000 -304.000000C132.000000 -341.000000,132.000000 -391.000000,132.000000 -440.000000C132.000000 -494.000000,132.000000 -541.000000,153.000000 -578.000000C180.000000 -628.000000,218.000000 -641.000000,253.000000 -641.000000C299.000000 -641.000000,332.000000 -607.000000,349.000000 -562.000000C361.000000 -530.000000,365.000000 -467.000000,365.000000 -421.000000C365.000000 -338.000000,331.000000 -241.000000,243.000000 -241.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_91">
      <path style="fill-rule: evenodd;" d="M255.000000 250.000000L255.000000 210.000000L158.000000 210.000000L158.000000 -710.000000L255.000000 -710.000000L255.000000 -750.000000L118.000000 -750.000000L118.000000 250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_93">
      <path style="fill-rule: evenodd;" d="M159.000000 -750.000000L22.000000 -750.000000L22.000000 -710.000000L119.000000 -710.000000L119.000000 210.000000L22.000000 210.000000L22.000000 250.000000L159.000000 250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_59">
      <path style="fill-rule: evenodd;" d="M203.000000 -1.000000C203.000000 -67.000000,178.000000 -106.000000,139.000000 -106.000000C106.000000 -106.000000,86.000000 -81.000000,86.000000 -53.000000C86.000000 -26.000000,106.000000 -0.000000,139.000000 -0.000000C151.000000 -0.000000,164.000000 -4.000000,174.000000 -13.000000C177.000000 -15.000000,178.000000 -16.000000,179.000000 -16.000000C180.000000 -16.000000,181.000000 -15.000000,181.000000 -1.000000C181.000000 73.000000,146.000000 133.000000,113.000000 166.000000C102.000000 177.000000,102.000000 179.000000,102.000000 182.000000C102.000000 189.000000,107.000000 193.000000,112.000000 193.000000C123.000000 193.000000,203.000000 116.000000,203.000000 -1.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_61">
      <path style="fill-rule: evenodd;" d="M439.000000 -712.000000C444.000000 -725.000000,444.000000 -729.000000,444.000000 -730.000000C444.000000 -741.000000,435.000000 -750.000000,424.000000 -750.000000C417.000000 -750.000000,410.000000 -747.000000,407.000000 -741.000000L60.000000 212.000000C55.000000 225.000000,55.000000 229.000000,55.000000 230.000000C55.000000 241.000000,64.000000 250.000000,75.000000 250.000000C88.000000 250.000000,91.000000 243.000000,97.000000 226.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_69">
      <path style="fill-rule: evenodd;" d="M708.000000 -233.000000C710.000000 -238.000000,713.000000 -245.000000,713.000000 -247.000000C713.000000 -248.000000,713.000000 -258.000000,701.000000 -258.000000C692.000000 -258.000000,690.000000 -252.000000,688.000000 -246.000000C623.000000 -98.000000,586.000000 -31.000000,415.000000 -31.000000L269.000000 -31.000000C255.000000 -31.000000,253.000000 -31.000000,247.000000 -32.000000C237.000000 -33.000000,234.000000 -34.000000,234.000000 -42.000000C234.000000 -45.000000,234.000000 -47.000000,239.000000 -65.000000L307.000000 -338.000000L406.000000 -338.000000C491.000000 -338.000000,491.000000 -317.000000,491.000000 -292.000000C491.000000 -285.000000,491.000000 -273.000000,484.000000 -243.000000C482.000000 -238.000000,481.000000 -235.000000,481.000000 -232.000000C481.000000 -227.000000,485.000000 -221.000000,494.000000 -221.000000C502.000000 -221.000000,505.000000 -226.000000,509.000000 -241.000000L566.000000 -475.000000C566.000000 -481.000000,561.000000 -486.000000,554.000000 -486.000000C545.000000 -486.000000,543.000000 -480.000000,540.000000 -468.000000C519.000000 -392.000000,501.000000 -369.000000,409.000000 -369.000000L315.000000 -369.000000L375.000000 -610.000000C384.000000 -645.000000,385.000000 -649.000000,429.000000 -649.000000L570.000000 -649.000000C692.000000 -649.000000,722.000000 -620.000000,722.000000 -538.000000C722.000000 -514.000000,722.000000 -512.000000,718.000000 -485.000000C718.000000 -479.000000,717.000000 -472.000000,717.000000 -467.000000C717.000000 -462.000000,720.000000 -455.000000,729.000000 -455.000000C740.000000 -455.000000,741.000000 -461.000000,743.000000 -480.000000L763.000000 -653.000000C766.000000 -680.000000,761.000000 -680.000000,736.000000 -680.000000L231.000000 -680.000000C211.000000 -680.000000,201.000000 -680.000000,201.000000 -660.000000C201.000000 -649.000000,210.000000 -649.000000,229.000000 -649.000000C266.000000 -649.000000,294.000000 -649.000000,294.000000 -631.000000C294.000000 -627.000000,294.000000 -625.000000,289.000000 -607.000000L157.000000 -78.000000C147.000000 -39.000000,145.000000 -31.000000,66.000000 -31.000000C49.000000 -31.000000,38.000000 -31.000000,38.000000 -12.000000C38.000000 -0.000000,47.000000 -0.000000,66.000000 -0.000000L585.000000 -0.000000C608.000000 -0.000000,609.000000 -1.000000,616.000000 -17.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_114">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C147.000000 -21.000000,181.000000 -157.000000,185.000000 -175.000000C193.000000 -208.000000,211.000000 -278.000000,217.000000 -305.000000C221.000000 -318.000000,249.000000 -365.000000,273.000000 -387.000000C281.000000 -394.000000,310.000000 -420.000000,353.000000 -420.000000C379.000000 -420.000000,394.000000 -408.000000,395.000000 -408.000000C365.000000 -403.000000,343.000000 -379.000000,343.000000 -353.000000C343.000000 -337.000000,354.000000 -318.000000,381.000000 -318.000000C408.000000 -318.000000,436.000000 -341.000000,436.000000 -377.000000C436.000000 -412.000000,404.000000 -442.000000,353.000000 -442.000000C288.000000 -442.000000,244.000000 -393.000000,225.000000 -365.000000C217.000000 -410.000000,181.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,60.000000 -385.000000C42.000000 -351.000000,29.000000 -291.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C148.000000 -420.000000,162.000000 -412.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_97">
      <path style="fill-rule: evenodd;" d="M442.000000 -66.000000C425.000000 -52.000000,413.000000 -47.000000,398.000000 -47.000000C375.000000 -47.000000,368.000000 -61.000000,368.000000 -105.000000L368.000000 -300.000000C368.000000 -352.000000,363.000000 -381.000000,348.000000 -405.000000C326.000000 -441.000000,283.000000 -460.000000,224.000000 -460.000000C130.000000 -460.000000,56.000000 -411.000000,56.000000 -348.000000C56.000000 -325.000000,76.000000 -305.000000,99.000000 -305.000000C123.000000 -305.000000,144.000000 -325.000000,144.000000 -347.000000C144.000000 -351.000000,143.000000 -356.000000,142.000000 -363.000000C140.000000 -372.000000,139.000000 -380.000000,139.000000 -387.000000C139.000000 -414.000000,171.000000 -436.000000,211.000000 -436.000000C260.000000 -436.000000,287.000000 -407.000000,287.000000 -353.000000L287.000000 -292.000000C133.000000 -230.000000,116.000000 -222.000000,73.000000 -184.000000C51.000000 -164.000000,37.000000 -130.000000,37.000000 -97.000000C37.000000 -34.000000,81.000000 10.000000,142.000000 10.000000C186.000000 10.000000,227.000000 -11.000000,288.000000 -63.000000C293.000000 -11.000000,311.000000 10.000000,352.000000 10.000000C386.000000 10.000000,407.000000 -2.000000,442.000000 -40.000000M287.000000 -123.000000C287.000000 -92.000000,282.000000 -83.000000,261.000000 -71.000000C237.000000 -57.000000,209.000000 -48.000000,188.000000 -48.000000C153.000000 -48.000000,125.000000 -82.000000,125.000000 -125.000000L125.000000 -129.000000C125.000000 -188.000000,166.000000 -224.000000,287.000000 -268.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_98">
      <path style="fill-rule: evenodd;" d="M153.000000 -681.000000L148.000000 -683.000000C106.000000 -668.000000,79.000000 -660.000000,32.000000 -647.000000L3.000000 -639.000000L3.000000 -623.000000C9.000000 -624.000000,13.000000 -624.000000,20.000000 -624.000000C60.000000 -624.000000,69.000000 -615.000000,69.000000 -573.000000L69.000000 -54.000000C69.000000 -23.000000,154.000000 10.000000,234.000000 10.000000C366.000000 10.000000,468.000000 -100.000000,468.000000 -243.000000C468.000000 -366.000000,392.000000 -460.000000,292.000000 -460.000000C231.000000 -460.000000,173.000000 -424.000000,153.000000 -375.000000M153.000000 -322.000000C153.000000 -361.000000,200.000000 -397.000000,252.000000 -397.000000C330.000000 -397.000000,380.000000 -319.000000,380.000000 -197.000000C380.000000 -86.000000,332.000000 -22.000000,250.000000 -22.000000C198.000000 -22.000000,153.000000 -45.000000,153.000000 -70.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_99">
      <path style="fill-rule: evenodd;" d="M398.000000 -156.000000C350.000000 -86.000000,314.000000 -62.000000,257.000000 -62.000000C166.000000 -62.000000,102.000000 -142.000000,102.000000 -257.000000C102.000000 -360.000000,157.000000 -431.000000,238.000000 -431.000000C274.000000 -431.000000,287.000000 -420.000000,297.000000 -383.000000L303.000000 -361.000000C311.000000 -333.000000,329.000000 -315.000000,350.000000 -315.000000C376.000000 -315.000000,398.000000 -334.000000,398.000000 -357.000000C398.000000 -413.000000,328.000000 -460.000000,244.000000 -460.000000C195.000000 -460.000000,144.000000 -440.000000,103.000000 -404.000000C53.000000 -360.000000,25.000000 -292.000000,25.000000 -213.000000C25.000000 -83.000000,104.000000 10.000000,215.000000 10.000000C260.000000 10.000000,300.000000 -6.000000,336.000000 -37.000000C363.000000 -61.000000,382.000000 -88.000000,412.000000 -147.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_100">
      <path style="fill-rule: evenodd;" d="M344.000000 10.000000L491.000000 -42.000000L491.000000 -58.000000C473.000000 -57.000000,471.000000 -57.000000,468.000000 -57.000000C432.000000 -57.000000,424.000000 -68.000000,424.000000 -114.000000L424.000000 -681.000000L419.000000 -683.000000C371.000000 -666.000000,336.000000 -656.000000,272.000000 -639.000000L272.000000 -623.000000C280.000000 -624.000000,286.000000 -624.000000,294.000000 -624.000000C331.000000 -624.000000,340.000000 -614.000000,340.000000 -573.000000L340.000000 -417.000000C302.000000 -449.000000,275.000000 -460.000000,235.000000 -460.000000C120.000000 -460.000000,27.000000 -347.000000,27.000000 -205.000000C27.000000 -77.000000,102.000000 10.000000,212.000000 10.000000C268.000000 10.000000,306.000000 -10.000000,340.000000 -57.000000L340.000000 7.000000M340.000000 -102.000000C340.000000 -95.000000,333.000000 -83.000000,323.000000 -72.000000C305.000000 -52.000000,280.000000 -42.000000,251.000000 -42.000000C168.000000 -42.000000,113.000000 -122.000000,113.000000 -245.000000C113.000000 -358.000000,162.000000 -432.000000,238.000000 -432.000000C291.000000 -432.000000,340.000000 -385.000000,340.000000 -332.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_101">
      <path style="fill-rule: evenodd;" d="M408.000000 -164.000000C360.000000 -88.000000,317.000000 -59.000000,253.000000 -59.000000C196.000000 -59.000000,153.000000 -88.000000,124.000000 -145.000000C106.000000 -183.000000,99.000000 -216.000000,97.000000 -277.000000L405.000000 -277.000000C397.000000 -342.000000,387.000000 -371.000000,362.000000 -403.000000C332.000000 -439.000000,286.000000 -460.000000,234.000000 -460.000000C184.000000 -460.000000,137.000000 -442.000000,99.000000 -408.000000C52.000000 -367.000000,25.000000 -296.000000,25.000000 -214.000000C25.000000 -76.000000,97.000000 10.000000,212.000000 10.000000C307.000000 10.000000,382.000000 -49.000000,424.000000 -157.000000M99.000000 -309.000000C110.000000 -387.000000,144.000000 -424.000000,205.000000 -424.000000C266.000000 -424.000000,290.000000 -396.000000,303.000000 -309.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_102">
      <path style="fill-rule: evenodd;" d="M309.000000 -450.000000L186.000000 -450.000000L186.000000 -566.000000C186.000000 -624.000000,205.000000 -655.000000,243.000000 -655.000000C264.000000 -655.000000,278.000000 -645.000000,296.000000 -616.000000C312.000000 -590.000000,324.000000 -580.000000,341.000000 -580.000000C364.000000 -580.000000,383.000000 -598.000000,383.000000 -621.000000C383.000000 -657.000000,339.000000 -683.000000,279.000000 -683.000000C217.000000 -683.000000,164.000000 -656.000000,138.000000 -610.000000C112.000000 -566.000000,104.000000 -530.000000,103.000000 -450.000000L21.000000 -450.000000L21.000000 -418.000000L103.000000 -418.000000L103.000000 -104.000000C103.000000 -31.000000,92.000000 -19.000000,20.000000 -15.000000L20.000000 -0.000000L280.000000 -0.000000L280.000000 -15.000000C198.000000 -18.000000,187.000000 -29.000000,187.000000 -104.000000L187.000000 -418.000000L309.000000 -418.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_103">
      <path style="fill-rule: evenodd;" d="M470.000000 -388.000000L470.000000 -427.000000L393.000000 -427.000000C373.000000 -427.000000,358.000000 -430.000000,338.000000 -437.000000L316.000000 -445.000000C289.000000 -455.000000,262.000000 -460.000000,236.000000 -460.000000C143.000000 -460.000000,69.000000 -388.000000,69.000000 -297.000000C69.000000 -234.000000,96.000000 -196.000000,162.000000 -163.000000C143.000000 -145.000000,125.000000 -128.000000,119.000000 -123.000000C86.000000 -94.000000,73.000000 -74.000000,73.000000 -54.000000C73.000000 -33.000000,85.000000 -21.000000,126.000000 -1.000000C55.000000 51.000000,28.000000 84.000000,28.000000 121.000000C28.000000 174.000000,106.000000 218.000000,201.000000 218.000000C276.000000 218.000000,354.000000 192.000000,406.000000 150.000000C444.000000 119.000000,461.000000 87.000000,461.000000 49.000000C461.000000 -13.000000,414.000000 -55.000000,340.000000 -58.000000L211.000000 -64.000000C158.000000 -66.000000,133.000000 -75.000000,133.000000 -91.000000C133.000000 -111.000000,166.000000 -146.000000,193.000000 -154.000000C202.000000 -153.000000,209.000000 -152.000000,212.000000 -152.000000C231.000000 -150.000000,244.000000 -149.000000,250.000000 -149.000000C287.000000 -149.000000,327.000000 -164.000000,358.000000 -191.000000C391.000000 -219.000000,406.000000 -254.000000,406.000000 -304.000000C406.000000 -333.000000,401.000000 -356.000000,387.000000 -388.000000M147.000000 2.000000C180.000000 9.000000,260.000000 15.000000,309.000000 15.000000C400.000000 15.000000,433.000000 28.000000,433.000000 64.000000C433.000000 122.000000,357.000000 161.000000,244.000000 161.000000C156.000000 161.000000,98.000000 132.000000,98.000000 88.000000C98.000000 65.000000,105.000000 52.000000,147.000000 2.000000M152.000000 -338.000000C152.000000 -397.000000,180.000000 -432.000000,226.000000 -432.000000C257.000000 -432.000000,283.000000 -415.000000,299.000000 -385.000000C317.000000 -350.000000,329.000000 -304.000000,329.000000 -265.000000C329.000000 -209.000000,300.000000 -174.000000,254.000000 -174.000000C194.000000 -174.000000,152.000000 -239.000000,152.000000 -335.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_104">
      <path style="fill-rule: evenodd;" d="M157.000000 -343.000000C199.000000 -389.000000,229.000000 -406.000000,268.000000 -406.000000C318.000000 -406.000000,343.000000 -370.000000,343.000000 -300.000000L343.000000 -102.000000C343.000000 -34.000000,333.000000 -21.000000,275.000000 -15.000000L275.000000 -0.000000L487.000000 -0.000000L487.000000 -15.000000C433.000000 -25.000000,427.000000 -33.000000,427.000000 -102.000000L427.000000 -301.000000C427.000000 -406.000000,385.000000 -460.000000,304.000000 -460.000000C245.000000 -460.000000,203.000000 -436.000000,157.000000 -376.000000L157.000000 -680.000000L152.000000 -683.000000C118.000000 -671.000000,93.000000 -663.000000,37.000000 -647.000000L10.000000 -639.000000L10.000000 -623.000000C14.000000 -624.000000,17.000000 -624.000000,22.000000 -624.000000C65.000000 -624.000000,73.000000 -616.000000,73.000000 -573.000000L73.000000 -102.000000C73.000000 -32.000000,67.000000 -23.000000,9.000000 -15.000000L9.000000 -0.000000L225.000000 -0.000000L225.000000 -15.000000C167.000000 -21.000000,157.000000 -33.000000,157.000000 -102.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_105">
      <path style="fill-rule: evenodd;" d="M175.000000 -460.000000L20.000000 -405.000000L20.000000 -390.000000L28.000000 -391.000000C40.000000 -393.000000,53.000000 -394.000000,62.000000 -394.000000C86.000000 -394.000000,95.000000 -378.000000,95.000000 -334.000000L95.000000 -102.000000C95.000000 -30.000000,85.000000 -19.000000,16.000000 -15.000000L16.000000 -0.000000L253.000000 -0.000000L253.000000 -15.000000C187.000000 -20.000000,179.000000 -30.000000,179.000000 -102.000000L179.000000 -457.000000M128.000000 -683.000000C101.000000 -683.000000,78.000000 -660.000000,78.000000 -632.000000C78.000000 -604.000000,100.000000 -581.000000,128.000000 -581.000000C157.000000 -581.000000,180.000000 -603.000000,180.000000 -632.000000C180.000000 -660.000000,157.000000 -683.000000,128.000000 -683.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_108">
      <path style="fill-rule: evenodd;" d="M19.000000 -623.000000L25.000000 -623.000000C36.000000 -624.000000,48.000000 -625.000000,56.000000 -625.000000C88.000000 -625.000000,98.000000 -611.000000,98.000000 -564.000000L98.000000 -87.000000C98.000000 -33.000000,84.000000 -20.000000,21.000000 -15.000000L21.000000 -0.000000L257.000000 -0.000000L257.000000 -15.000000C194.000000 -19.000000,182.000000 -29.000000,182.000000 -84.000000L182.000000 -681.000000L178.000000 -683.000000C126.000000 -666.000000,88.000000 -656.000000,19.000000 -639.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_109">
      <path style="fill-rule: evenodd;" d="M19.000000 -398.000000C32.000000 -401.000000,40.000000 -402.000000,51.000000 -402.000000C77.000000 -402.000000,86.000000 -386.000000,86.000000 -338.000000L86.000000 -85.000000C86.000000 -31.000000,72.000000 -16.000000,16.000000 -15.000000L16.000000 -0.000000L238.000000 -0.000000L238.000000 -15.000000C185.000000 -17.000000,170.000000 -28.000000,170.000000 -67.000000L170.000000 -349.000000C170.000000 -351.000000,178.000000 -361.000000,185.000000 -368.000000C210.000000 -391.000000,253.000000 -408.000000,288.000000 -408.000000C332.000000 -408.000000,354.000000 -373.000000,354.000000 -303.000000L354.000000 -86.000000C354.000000 -30.000000,343.000000 -19.000000,286.000000 -15.000000L286.000000 -0.000000L510.000000 -0.000000L510.000000 -15.000000C453.000000 -16.000000,438.000000 -33.000000,438.000000 -95.000000L438.000000 -347.000000C468.000000 -390.000000,501.000000 -408.000000,547.000000 -408.000000C604.000000 -408.000000,622.000000 -381.000000,622.000000 -298.000000L622.000000 -87.000000C622.000000 -30.000000,614.000000 -22.000000,556.000000 -15.000000L556.000000 -0.000000L775.000000 -0.000000L775.000000 -15.000000L749.000000 -17.000000C719.000000 -19.000000,706.000000 -37.000000,706.000000 -76.000000L706.000000 -282.000000C706.000000 -400.000000,667.000000 -460.000000,590.000000 -460.000000C532.000000 -460.000000,481.000000 -434.000000,427.000000 -376.000000C409.000000 -433.000000,375.000000 -460.000000,321.000000 -460.000000C277.000000 -460.000000,249.000000 -446.000000,166.000000 -383.000000L166.000000 -458.000000L159.000000 -460.000000C108.000000 -441.000000,74.000000 -430.000000,19.000000 -415.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_110">
      <path style="fill-rule: evenodd;" d="M16.000000 -398.000000C22.000000 -401.000000,32.000000 -402.000000,43.000000 -402.000000C71.000000 -402.000000,80.000000 -387.000000,80.000000 -338.000000L80.000000 -90.000000C80.000000 -33.000000,69.000000 -19.000000,18.000000 -15.000000L18.000000 -0.000000L230.000000 -0.000000L230.000000 -15.000000C179.000000 -19.000000,164.000000 -31.000000,164.000000 -67.000000L164.000000 -348.000000C212.000000 -393.000000,234.000000 -405.000000,267.000000 -405.000000C316.000000 -405.000000,340.000000 -374.000000,340.000000 -308.000000L340.000000 -99.000000C340.000000 -36.000000,327.000000 -19.000000,277.000000 -15.000000L277.000000 -0.000000L485.000000 -0.000000L485.000000 -15.000000C436.000000 -20.000000,424.000000 -32.000000,424.000000 -81.000000L424.000000 -310.000000C424.000000 -404.000000,380.000000 -460.000000,306.000000 -460.000000C260.000000 -460.000000,229.000000 -443.000000,161.000000 -379.000000L161.000000 -458.000000L154.000000 -460.000000C105.000000 -442.000000,71.000000 -431.000000,16.000000 -415.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_111">
      <path style="fill-rule: evenodd;" d="M250.000000 -460.000000C120.000000 -460.000000,29.000000 -364.000000,29.000000 -226.000000C29.000000 -91.000000,122.000000 10.000000,248.000000 10.000000C374.000000 10.000000,470.000000 -96.000000,470.000000 -234.000000C470.000000 -365.000000,378.000000 -460.000000,250.000000 -460.000000M237.000000 -432.000000C321.000000 -432.000000,380.000000 -336.000000,380.000000 -199.000000C380.000000 -86.000000,335.000000 -18.000000,260.000000 -18.000000C221.000000 -18.000000,184.000000 -42.000000,163.000000 -82.000000C135.000000 -134.000000,119.000000 -204.000000,119.000000 -275.000000C119.000000 -370.000000,166.000000 -432.000000,237.000000 -432.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_112">
      <path style="fill-rule: evenodd;" d="M9.000000 -393.000000C18.000000 -394.000000,25.000000 -394.000000,34.000000 -394.000000C68.000000 -394.000000,75.000000 -384.000000,75.000000 -337.000000L75.000000 131.000000C75.000000 183.000000,64.000000 194.000000,5.000000 200.000000L5.000000 217.000000L247.000000 217.000000L247.000000 199.000000C172.000000 198.000000,159.000000 187.000000,159.000000 124.000000L159.000000 -33.000000C194.000000 -0.000000,218.000000 10.000000,260.000000 10.000000C378.000000 10.000000,470.000000 -102.000000,470.000000 -247.000000C470.000000 -371.000000,400.000000 -460.000000,303.000000 -460.000000C247.000000 -460.000000,203.000000 -435.000000,159.000000 -381.000000L159.000000 -458.000000L153.000000 -460.000000C99.000000 -439.000000,64.000000 -426.000000,9.000000 -409.000000M159.000000 -334.000000C159.000000 -364.000000,215.000000 -400.000000,261.000000 -400.000000C335.000000 -400.000000,384.000000 -324.000000,384.000000 -208.000000C384.000000 -97.000000,335.000000 -22.000000,263.000000 -22.000000C216.000000 -22.000000,159.000000 -58.000000,159.000000 -88.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_114">
      <path style="fill-rule: evenodd;" d="M7.000000 -390.000000C21.000000 -393.000000,30.000000 -394.000000,42.000000 -394.000000C67.000000 -394.000000,76.000000 -378.000000,76.000000 -334.000000L76.000000 -84.000000C76.000000 -34.000000,69.000000 -27.000000,5.000000 -15.000000L5.000000 -0.000000L245.000000 -0.000000L245.000000 -15.000000C177.000000 -18.000000,160.000000 -33.000000,160.000000 -90.000000L160.000000 -315.000000C160.000000 -347.000000,203.000000 -397.000000,230.000000 -397.000000C236.000000 -397.000000,245.000000 -392.000000,256.000000 -382.000000C272.000000 -368.000000,283.000000 -362.000000,296.000000 -362.000000C320.000000 -362.000000,335.000000 -379.000000,335.000000 -407.000000C335.000000 -440.000000,314.000000 -460.000000,280.000000 -460.000000C238.000000 -460.000000,209.000000 -437.000000,160.000000 -366.000000L160.000000 -458.000000L155.000000 -460.000000C102.000000 -438.000000,66.000000 -425.000000,7.000000 -406.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_115">
      <path style="fill-rule: evenodd;" d="M315.000000 -314.000000L311.000000 -450.000000L300.000000 -450.000000L298.000000 -448.000000C289.000000 -441.000000,288.000000 -440.000000,284.000000 -440.000000C278.000000 -440.000000,268.000000 -442.000000,257.000000 -447.000000C235.000000 -455.000000,213.000000 -459.000000,187.000000 -459.000000C108.000000 -459.000000,51.000000 -408.000000,51.000000 -336.000000C51.000000 -280.000000,83.000000 -240.000000,168.000000 -192.000000L226.000000 -159.000000C261.000000 -139.000000,278.000000 -115.000000,278.000000 -84.000000C278.000000 -40.000000,246.000000 -12.000000,195.000000 -12.000000C161.000000 -12.000000,130.000000 -25.000000,111.000000 -47.000000C90.000000 -72.000000,81.000000 -95.000000,68.000000 -152.000000L52.000000 -152.000000L52.000000 4.000000L65.000000 4.000000C72.000000 -6.000000,76.000000 -8.000000,88.000000 -8.000000C97.000000 -8.000000,111.000000 -6.000000,134.000000 -0.000000C162.000000 6.000000,189.000000 10.000000,207.000000 10.000000C284.000000 10.000000,348.000000 -48.000000,348.000000 -118.000000C348.000000 -168.000000,324.000000 -201.000000,264.000000 -237.000000L156.000000 -301.000000C128.000000 -317.000000,113.000000 -342.000000,113.000000 -369.000000C113.000000 -409.000000,144.000000 -437.000000,190.000000 -437.000000C247.000000 -437.000000,277.000000 -403.000000,300.000000 -314.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_116">
      <path style="fill-rule: evenodd;" d="M255.000000 -450.000000L154.000000 -450.000000L154.000000 -566.000000C154.000000 -576.000000,153.000000 -579.000000,147.000000 -579.000000C140.000000 -570.000000,134.000000 -561.000000,127.000000 -551.000000C89.000000 -496.000000,46.000000 -448.000000,30.000000 -444.000000C19.000000 -437.000000,13.000000 -430.000000,13.000000 -425.000000C13.000000 -422.000000,14.000000 -420.000000,17.000000 -418.000000L70.000000 -418.000000L70.000000 -117.000000C70.000000 -33.000000,100.000000 10.000000,159.000000 10.000000C208.000000 10.000000,246.000000 -14.000000,279.000000 -66.000000L266.000000 -77.000000C245.000000 -52.000000,228.000000 -42.000000,206.000000 -42.000000C169.000000 -42.000000,154.000000 -69.000000,154.000000 -132.000000L154.000000 -418.000000L255.000000 -418.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_117">
      <path style="fill-rule: evenodd;" d="M479.000000 -50.000000L474.000000 -50.000000C428.000000 -50.000000,417.000000 -61.000000,417.000000 -107.000000L417.000000 -450.000000L259.000000 -450.000000L259.000000 -433.000000C321.000000 -430.000000,333.000000 -420.000000,333.000000 -370.000000L333.000000 -135.000000C333.000000 -107.000000,328.000000 -93.000000,314.000000 -82.000000C287.000000 -60.000000,256.000000 -48.000000,226.000000 -48.000000C187.000000 -48.000000,155.000000 -82.000000,155.000000 -124.000000L155.000000 -450.000000L9.000000 -450.000000L9.000000 -436.000000C57.000000 -433.000000,71.000000 -418.000000,71.000000 -372.000000L71.000000 -120.000000C71.000000 -41.000000,119.000000 10.000000,192.000000 10.000000C229.000000 10.000000,268.000000 -6.000000,295.000000 -33.000000L338.000000 -76.000000L338.000000 7.000000L342.000000 9.000000C392.000000 -11.000000,428.000000 -22.000000,479.000000 -36.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_119">
      <path style="fill-rule: evenodd;" d="M571.000000 -450.000000L571.000000 -435.000000C605.000000 -428.000000,615.000000 -421.000000,615.000000 -404.000000C615.000000 -389.000000,609.000000 -365.000000,598.000000 -338.000000L508.000000 -116.000000L424.000000 -340.000000C407.000000 -386.000000,407.000000 -386.000000,407.000000 -399.000000C407.000000 -421.000000,418.000000 -428.000000,465.000000 -435.000000L465.000000 -450.000000L262.000000 -450.000000L262.000000 -435.000000C299.000000 -431.000000,311.000000 -420.000000,331.000000 -366.000000C338.000000 -347.000000,345.000000 -328.000000,351.000000 -310.000000L260.000000 -111.000000L161.000000 -372.000000C157.000000 -382.000000,155.000000 -392.000000,155.000000 -402.000000C155.000000 -423.000000,167.000000 -431.000000,201.000000 -435.000000L201.000000 -450.000000L21.000000 -450.000000L21.000000 -435.000000C44.000000 -433.000000,52.000000 -423.000000,74.000000 -372.000000L209.000000 -30.000000C221.000000 -0.000000,229.000000 14.000000,235.000000 14.000000C240.000000 14.000000,248.000000 1.000000,260.000000 -25.000000L372.000000 -265.000000L463.000000 -29.000000C477.000000 8.000000,481.000000 14.000000,487.000000 14.000000C494.000000 14.000000,499.000000 5.000000,515.000000 -35.000000L653.000000 -381.000000C671.000000 -423.000000,674.000000 -428.000000,694.000000 -435.000000L694.000000 -450.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_121">
      <path style="fill-rule: evenodd;" d="M475.000000 -450.000000L340.000000 -450.000000L340.000000 -435.000000C372.000000 -435.000000,388.000000 -426.000000,388.000000 -410.000000C388.000000 -406.000000,387.000000 -400.000000,384.000000 -393.000000L287.000000 -117.000000L172.000000 -370.000000C166.000000 -384.000000,162.000000 -397.000000,162.000000 -408.000000C162.000000 -426.000000,177.000000 -433.000000,220.000000 -435.000000L220.000000 -450.000000L14.000000 -450.000000L14.000000 -436.000000C40.000000 -432.000000,57.000000 -421.000000,65.000000 -404.000000L179.000000 -158.000000L182.000000 -150.000000L197.000000 -120.000000C225.000000 -70.000000,241.000000 -34.000000,241.000000 -19.000000C241.000000 -4.000000,218.000000 59.000000,201.000000 89.000000C187.000000 115.000000,165.000000 134.000000,151.000000 134.000000C145.000000 134.000000,136.000000 132.000000,126.000000 127.000000C107.000000 120.000000,90.000000 116.000000,73.000000 116.000000C50.000000 116.000000,30.000000 136.000000,30.000000 160.000000C30.000000 193.000000,62.000000 218.000000,104.000000 218.000000C171.000000 218.000000,219.000000 162.000000,273.000000 18.000000L427.000000 -390.000000C440.000000 -422.000000,451.000000 -432.000000,475.000000 -435.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 14.183868)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_105"></use>
    <use xlink:href="#GLYPHptmr8r_110" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="7.780024"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="10.559968"></use>
    <use xlink:href="#GLYPHptmr8r_110" x="14.999978"></use>
    <use xlink:href="#GLYPHptmr8r_115" x="20.000058"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="23.890016"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="26.669960"></use>
    <use xlink:href="#GLYPHptmr8r_121" x="29.449904"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,67.048538 14.183868)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_105"></use>
    <use xlink:href="#GLYPHptmr8r_110" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_99" x="7.780024"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="12.220034"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="15.550046"></use>
    <use xlink:href="#GLYPHptmr8r_97" x="19.990056"></use>
    <use xlink:href="#GLYPHptmr8r_115" x="24.430067"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="28.320025"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,210.956467 14.183868)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_69"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,222.723373 16.574921)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_120"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,230.749023 14.183868)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
    <use xlink:href="#GLYPHcmmi10_69" x="5.000095"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,250.486206 16.574921)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_121"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 52.440521)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_101"></use>
    <use xlink:href="#GLYPHptmr8r_100" x="4.440010"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="9.440090"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="14.440169"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,42.230209 52.440521)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_100"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="7.780024"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_99" x="15.550046"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="19.990056"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="22.770000"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="25.549944"></use>
    <use xlink:href="#GLYPHptmr8r_110" x="30.550024"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,102.882294 52.440521)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_114"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_98"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="12.780103"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="15.560047"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="20.560127"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,92.282089 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,108.668549 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="7.780024"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,220.383209 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,228.353333 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,236.323425 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 71.568909)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,55.125626 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_119"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="7.220077"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="11.660087"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.005096 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,117.100906 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,133.487366 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_117"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="15.000238"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="19.440249"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,173.768311 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,218.169281 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,230.567261 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,238.537354 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_93"></use>
    <use xlink:href="#GLYPHcmr10_48" x="2.777830"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,286.486664 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,293.571182 90.697296)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_57"></use>
    <use xlink:href="#GLYPHcmr10_48" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_91" x="10.000190"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,77.218674 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,93.605133 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,220.383209 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,232.781189 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,240.751312 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 109.825531)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_57"></use>
    <use xlink:href="#GLYPHcmr10_48" x="5.000095"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_117"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="15.000238"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="19.440249"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.403809 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,117.499619 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,133.886078 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,145.888855 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_119"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="7.220077"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="11.660087"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,173.768311 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,218.169281 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,230.567261 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,238.537354 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_93"></use>
    <use xlink:href="#GLYPHcmr10_57" x="2.777830"></use>
    <use xlink:href="#GLYPHcmr10_48" x="7.777925"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,294.456787 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,301.541290 128.953918)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
    <use xlink:href="#GLYPHcmr10_56" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_48" x="10.000190"></use>
    <use xlink:href="#GLYPHcmr10_91" x="15.000284"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="7.780024"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,67.479431 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.865891 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_98"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="12.780103"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="15.560047"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="20.560127"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,220.383209 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,228.353333 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,236.323425 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 148.082306)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
    <use xlink:href="#GLYPHcmr10_56" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_48" x="10.000190"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_117"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="15.000238"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="19.440249"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.403809 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,108.636719 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,125.023178 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,137.026108 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_119"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="7.220077"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="11.660087"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,164.905411 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,218.169281 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,230.567261 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,238.537354 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_93"></use>
    <use xlink:href="#GLYPHcmr10_49" x="2.777830"></use>
    <use xlink:href="#GLYPHcmr10_56" x="7.777925"></use>
    <use xlink:href="#GLYPHcmr10_48" x="12.778020"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,302.426880 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,309.511414 167.210541)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
    <use xlink:href="#GLYPHcmr10_55" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_48" x="10.000190"></use>
    <use xlink:href="#GLYPHcmr10_91" x="15.000284"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,68.355743 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,84.742218 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,220.383209 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,232.781189 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,240.751312 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 186.338928)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
    <use xlink:href="#GLYPHcmr10_55" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_48" x="10.000190"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.150070 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_102"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="6.660023"></use>
    <use xlink:href="#GLYPHptmr8r_109" x="11.660103"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.122864 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,55.125626 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_119"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="7.220077"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="11.660087"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.005096 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_108"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="2.779944"></use>
    <use xlink:href="#GLYPHptmr8r_102" x="7.219955"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="10.549966"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,108.237976 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_116"></use>
    <use xlink:href="#GLYPHptmr8r_111" x="2.779944"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,124.624451 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_117"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="5.000079"></use>
    <use xlink:href="#GLYPHptmr8r_112" x="10.000159"></use>
    <use xlink:href="#GLYPHptmr8r_101" x="15.000238"></use>
    <use xlink:href="#GLYPHptmr8r_114" x="19.440249"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,164.905411 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_114"></use>
    <use xlink:href="#GLYPHptmr8r_105" x="3.330012"></use>
    <use xlink:href="#GLYPHptmr8r_103" x="6.109956"></use>
    <use xlink:href="#GLYPHptmr8r_104" x="11.110035"></use>
    <use xlink:href="#GLYPHptmr8r_116" x="16.110115"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,218.169281 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,230.567261 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,238.537354 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,274.088547 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_93"></use>
    <use xlink:href="#GLYPHcmr10_50" x="2.777830"></use>
    <use xlink:href="#GLYPHcmr10_55" x="7.777925"></use>
    <use xlink:href="#GLYPHcmr10_48" x="12.778020"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,302.426880 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_59"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,309.511414 205.467316)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_51"></use>
    <use xlink:href="#GLYPHcmr10_54" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_48" x="10.000190"></use>
    <use xlink:href="#GLYPHcmr10_91" x="15.000284"></use>
  </g>
</svg></span>
Points with edge amplitude 0 are assigned the edge direction 255
(undefined direction).
</p>
<p>The “filter width” (i.e., the amount of smoothing) can be chosen
arbitrarily for all filters except <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i> (where the
filter width is 3x3 and <a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a> is
ignored), and can be estimated by calling <a href="info_edges.html"><code><span data-if="hdevelop" style="display:inline">info_edges</span><span data-if="c" style="display:none">info_edges</span><span data-if="cpp" style="display:none">InfoEdges</span><span data-if="com" style="display:none">InfoEdges</span><span data-if="dotnet" style="display:none">InfoEdges</span><span data-if="python" style="display:none">info_edges</span></code></a> for
concrete values of the parameter <a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a>.  It decreases for
increasing <a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a> for the Deriche, Lanser and Shen filters
and increases for the Canny filter, where it is the standard
deviation of the Gaussian on which the Canny operator is based.
“Wide” filters exhibit a larger invariance to noise, but also a
decreased ability to detect small details.  Non-recursive filters,
such as the Canny filter, are realized using filter masks, and thus
the execution time increases for increasing filter width.  In
contrast, the execution time for recursive filters does not depend
on the filter width.  Thus, arbitrary filter widths are possible
using the Deriche, Lanser and Shen filters without increasing the
run time of 该算子.  The resulting advantage in speed compared
to the Canny operator naturally increases for larger filter widths.
As border treatment, the recursive operators assume that the images
to be zero outside of the image, while the Canny operator repeats
the gray value at the image's border.  The signal-noise-ratio of the
filters is comparable for the following choices of <a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a>:
<span class="pre">
     Alpha('lanser1')   = Alpha('deriche1'),
     Alpha('deriche2')  = Alpha('deriche1') / 2,
     Alpha('lanser2')   = Alpha('deriche2'),
     Alpha('shen')      = Alpha('deriche1') / 2,
     Alpha('mshen')     = Alpha('shen'),
     Alpha('canny')     = 1.77 / Alpha('deriche1').
</span>
The originally proposed recursive filters
(<i><span data-if="hdevelop" style="display:inline">'deriche1'</span><span data-if="c" style="display:none">"deriche1"</span><span data-if="cpp" style="display:none">"deriche1"</span><span data-if="com" style="display:none">"deriche1"</span><span data-if="dotnet" style="display:none">"deriche1"</span><span data-if="python" style="display:none">"deriche1"</span></i>, <i><span data-if="hdevelop" style="display:inline">'deriche2'</span><span data-if="c" style="display:none">"deriche2"</span><span data-if="cpp" style="display:none">"deriche2"</span><span data-if="com" style="display:none">"deriche2"</span><span data-if="dotnet" style="display:none">"deriche2"</span><span data-if="python" style="display:none">"deriche2"</span></i>, <i><span data-if="hdevelop" style="display:inline">'shen'</span><span data-if="c" style="display:none">"shen"</span><span data-if="cpp" style="display:none">"shen"</span><span data-if="com" style="display:none">"shen"</span><span data-if="dotnet" style="display:none">"shen"</span><span data-if="python" style="display:none">"shen"</span></i>) return a biased
estimate of the amplitude of diagonal edges.
This bias is removed in the corresponding modified version
of 该算子s
(<i><span data-if="hdevelop" style="display:inline">'lanser1'</span><span data-if="c" style="display:none">"lanser1"</span><span data-if="cpp" style="display:none">"lanser1"</span><span data-if="com" style="display:none">"lanser1"</span><span data-if="dotnet" style="display:none">"lanser1"</span><span data-if="python" style="display:none">"lanser1"</span></i>, <i><span data-if="hdevelop" style="display:inline">'lanser2'</span><span data-if="c" style="display:none">"lanser2"</span><span data-if="cpp" style="display:none">"lanser2"</span><span data-if="com" style="display:none">"lanser2"</span><span data-if="dotnet" style="display:none">"lanser2"</span><span data-if="python" style="display:none">"lanser2"</span></i> and <i><span data-if="hdevelop" style="display:inline">'mshen'</span><span data-if="c" style="display:none">"mshen"</span><span data-if="cpp" style="display:none">"mshen"</span><span data-if="com" style="display:none">"mshen"</span><span data-if="dotnet" style="display:none">"mshen"</span><span data-if="python" style="display:none">"mshen"</span></i>),
while maintaining the same execution speed.
</p>
<p>For relatively small filter widths (11 x 11),
i.e., for
<a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a>('lanser2') = <i>0.5</i>,
all filters yield similar results.
Only for “wider” filters differences begin to appear:
the Shen filters begin to yield qualitatively inferior results.
However, they are the fastest of the implemented operators ---
closely followed by the Deriche operators.
</p>
<code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> optionally offers to apply a
non-maximum-suppression
(<a href="#NMS"><i><code><span data-if="hdevelop" style="display:inline">NMS</span><span data-if="c" style="display:none">NMS</span><span data-if="cpp" style="display:none">NMS</span><span data-if="com" style="display:none">NMS</span><span data-if="dotnet" style="display:none">NMS</span><span data-if="python" style="display:none">nms</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'nms'</span><span data-if="c" style="display:none">"nms"</span><span data-if="cpp" style="display:none">"nms"</span><span data-if="com" style="display:none">"nms"</span><span data-if="dotnet" style="display:none">"nms"</span><span data-if="python" style="display:none">"nms"</span></i>/<i><span data-if="hdevelop" style="display:inline">'inms'</span><span data-if="c" style="display:none">"inms"</span><span data-if="cpp" style="display:none">"inms"</span><span data-if="com" style="display:none">"inms"</span><span data-if="dotnet" style="display:none">"inms"</span><span data-if="python" style="display:none">"inms"</span></i>/<i><span data-if="hdevelop" style="display:inline">'hvnms'</span><span data-if="c" style="display:none">"hvnms"</span><span data-if="cpp" style="display:none">"hvnms"</span><span data-if="com" style="display:none">"hvnms"</span><span data-if="dotnet" style="display:none">"hvnms"</span><span data-if="python" style="display:none">"hvnms"</span></i>;
<i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>
if not desired) and hysteresis threshold operation
(<a href="#Low"><i><code><span data-if="hdevelop" style="display:inline">Low</span><span data-if="c" style="display:none">Low</span><span data-if="cpp" style="display:none">Low</span><span data-if="com" style="display:none">Low</span><span data-if="dotnet" style="display:none">low</span><span data-if="python" style="display:none">low</span></code></i></a>,<a href="#High"><i><code><span data-if="hdevelop" style="display:inline">High</span><span data-if="c" style="display:none">High</span><span data-if="cpp" style="display:none">High</span><span data-if="com" style="display:none">High</span><span data-if="dotnet" style="display:none">high</span><span data-if="python" style="display:none">high</span></code></i></a>; at least one negative if not
desired) to the resulting edge image.
Conceptually, this corresponds to the following calls:
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="layout">
<col span="1" style="width:90%;">
<tr><td style="text-align:left">
<a href="nonmax_suppression_dir.html"><code><span data-if="hdevelop" style="display:inline">nonmax_suppression_dir(...,NMS,...)</span><span data-if="c" style="display:none">nonmax_suppression_dir(...,NMS,...)</span><span data-if="cpp" style="display:none">NonmaxSuppressionDir(...,NMS,...)</span><span data-if="com" style="display:none">NonmaxSuppressionDir(...,NMS,...)</span><span data-if="dotnet" style="display:none">NonmaxSuppressionDir(...,NMS,...)</span><span data-if="python" style="display:none">nonmax_suppression_dir(...,NMS,...)</span></code></a>
</td></tr>
<tr><td style="text-align:left">
<a href="hysteresis_threshold.html"><code><span data-if="hdevelop" style="display:inline">hysteresis_threshold(...,Low,High,999,...)</span><span data-if="c" style="display:none">hysteresis_threshold(...,Low,High,999,...)</span><span data-if="cpp" style="display:none">HysteresisThreshold(...,Low,High,999,...)</span><span data-if="com" style="display:none">HysteresisThreshold(...,Low,High,999,...)</span><span data-if="dotnet" style="display:none">HysteresisThreshold(...,Low,High,999,...)</span><span data-if="python" style="display:none">hysteresis_threshold(...,Low,High,999,...)</span></code></a>.
</td></tr>
</table></div>
<p>Note that the hysteresis threshold operation is not applied
if <a href="#NMS"><i><code><span data-if="hdevelop" style="display:inline">NMS</span><span data-if="c" style="display:none">NMS</span><span data-if="cpp" style="display:none">NMS</span><span data-if="com" style="display:none">NMS</span><span data-if="dotnet" style="display:none">NMS</span><span data-if="python" style="display:none">nms</span></code></i></a> is set to <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>.
</p>
<p>For <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i>, the same non-maximum-suppression is
performed for all values of <a href="#NMS"><i><code><span data-if="hdevelop" style="display:inline">NMS</span><span data-if="c" style="display:none">NMS</span><span data-if="cpp" style="display:none">NMS</span><span data-if="com" style="display:none">NMS</span><span data-if="dotnet" style="display:none">NMS</span><span data-if="python" style="display:none">nms</span></code></i></a> except <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>.
Additionally, for <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i> the resulting edges are
thinned to a width of one pixel.
</p>
<p><code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> can be executed on OpenCL devices for the filter
types <i><span data-if="hdevelop" style="display:inline">'canny'</span><span data-if="c" style="display:none">"canny"</span><span data-if="cpp" style="display:none">"canny"</span><span data-if="com" style="display:none">"canny"</span><span data-if="dotnet" style="display:none">"canny"</span><span data-if="python" style="display:none">"canny"</span></i> and <i><span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></i>.</p>
<h2 id="sec_attention">注意</h2>
<p>The OpenCL implementation of <code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> will generally compute
results that differ somewhat from the CPU implementation.
</p>
<p>Since <code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> uses Gauss convolution internally for the
<i><span data-if="hdevelop" style="display:inline">'canny'</span><span data-if="c" style="display:none">"canny"</span><span data-if="cpp" style="display:none">"canny"</span><span data-if="com" style="display:none">"canny"</span><span data-if="dotnet" style="display:none">"canny"</span><span data-if="python" style="display:none">"canny"</span></i> filter, the same limitations for OpenCL apply as for
<a href="derivate_gauss.html"><code><span data-if="hdevelop" style="display:inline">derivate_gauss</span><span data-if="c" style="display:none">derivate_gauss</span><span data-if="cpp" style="display:none">DerivateGauss</span><span data-if="com" style="display:none">DerivateGauss</span><span data-if="dotnet" style="display:none">DerivateGauss</span><span data-if="python" style="display:none">derivate_gauss</span></code></a>: <a href="#Alpha"><i><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></i></a> must be chosen small enough that
the required filter mask is less than 129 pixels in size.
</p>
<p>Note that filter operators may return unexpected results if
an image with a reduced domain is used as input. Please refer to the
chapter <a href="toc_filters.html">过滤器</a>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
    
      <li>支持OpenCL计算设备。</li>
    
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>在元组级别自动并行化。</li>
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Image" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></b> (input_object)  </span><span>singlechannelimage(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / uint2 / int4 / real)</span>
</div>
<p class="pardesc">Input image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ImaAmp" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ImaAmp</span><span data-if="c" style="display:none">ImaAmp</span><span data-if="cpp" style="display:none">ImaAmp</span><span data-if="com" style="display:none">ImaAmp</span><span data-if="dotnet" style="display:none">imaAmp</span><span data-if="python" style="display:none">ima_amp</span></code></b> (output_object)  </span><span>(multichannel-)image(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (byte / uint2 / int4 / real)</span>
</div>
<p class="pardesc">Edge amplitude (gradient magnitude) image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ImaDir" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ImaDir</span><span data-if="c" style="display:none">ImaDir</span><span data-if="cpp" style="display:none">ImaDir</span><span data-if="com" style="display:none">ImaDir</span><span data-if="dotnet" style="display:none">imaDir</span><span data-if="python" style="display:none">ima_dir</span></code></b> (output_object)  </span><span>image(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (direction)</span>
</div>
<p class="pardesc">Edge direction image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Filter" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Filter</span><span data-if="c" style="display:none">Filter</span><span data-if="cpp" style="display:none">Filter</span><span data-if="com" style="display:none">Filter</span><span data-if="dotnet" style="display:none">filter</span><span data-if="python" style="display:none">filter</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Edge operator to be applied.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'canny'</span>
    <span data-if="c" style="display:none">"canny"</span>
    <span data-if="cpp" style="display:none">"canny"</span>
    <span data-if="com" style="display:none">"canny"</span>
    <span data-if="dotnet" style="display:none">"canny"</span>
    <span data-if="python" style="display:none">"canny"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'canny'</span><span data-if="c" style="display:none">"canny"</span><span data-if="cpp" style="display:none">"canny"</span><span data-if="com" style="display:none">"canny"</span><span data-if="dotnet" style="display:none">"canny"</span><span data-if="python" style="display:none">"canny"</span>, <span data-if="hdevelop" style="display:inline">'deriche1'</span><span data-if="c" style="display:none">"deriche1"</span><span data-if="cpp" style="display:none">"deriche1"</span><span data-if="com" style="display:none">"deriche1"</span><span data-if="dotnet" style="display:none">"deriche1"</span><span data-if="python" style="display:none">"deriche1"</span>, <span data-if="hdevelop" style="display:inline">'deriche1_int4'</span><span data-if="c" style="display:none">"deriche1_int4"</span><span data-if="cpp" style="display:none">"deriche1_int4"</span><span data-if="com" style="display:none">"deriche1_int4"</span><span data-if="dotnet" style="display:none">"deriche1_int4"</span><span data-if="python" style="display:none">"deriche1_int4"</span>, <span data-if="hdevelop" style="display:inline">'deriche2'</span><span data-if="c" style="display:none">"deriche2"</span><span data-if="cpp" style="display:none">"deriche2"</span><span data-if="com" style="display:none">"deriche2"</span><span data-if="dotnet" style="display:none">"deriche2"</span><span data-if="python" style="display:none">"deriche2"</span>, <span data-if="hdevelop" style="display:inline">'deriche2_int4'</span><span data-if="c" style="display:none">"deriche2_int4"</span><span data-if="cpp" style="display:none">"deriche2_int4"</span><span data-if="com" style="display:none">"deriche2_int4"</span><span data-if="dotnet" style="display:none">"deriche2_int4"</span><span data-if="python" style="display:none">"deriche2_int4"</span>, <span data-if="hdevelop" style="display:inline">'lanser1'</span><span data-if="c" style="display:none">"lanser1"</span><span data-if="cpp" style="display:none">"lanser1"</span><span data-if="com" style="display:none">"lanser1"</span><span data-if="dotnet" style="display:none">"lanser1"</span><span data-if="python" style="display:none">"lanser1"</span>, <span data-if="hdevelop" style="display:inline">'lanser2'</span><span data-if="c" style="display:none">"lanser2"</span><span data-if="cpp" style="display:none">"lanser2"</span><span data-if="com" style="display:none">"lanser2"</span><span data-if="dotnet" style="display:none">"lanser2"</span><span data-if="python" style="display:none">"lanser2"</span>, <span data-if="hdevelop" style="display:inline">'mshen'</span><span data-if="c" style="display:none">"mshen"</span><span data-if="cpp" style="display:none">"mshen"</span><span data-if="com" style="display:none">"mshen"</span><span data-if="dotnet" style="display:none">"mshen"</span><span data-if="python" style="display:none">"mshen"</span>, <span data-if="hdevelop" style="display:inline">'shen'</span><span data-if="c" style="display:none">"shen"</span><span data-if="cpp" style="display:none">"shen"</span><span data-if="com" style="display:none">"shen"</span><span data-if="dotnet" style="display:none">"shen"</span><span data-if="python" style="display:none">"shen"</span>, <span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></p>
<p class="pardesc"><span class="parcat">List of values (for compute devices):
      </span><span data-if="hdevelop" style="display:inline">'canny'</span><span data-if="c" style="display:none">"canny"</span><span data-if="cpp" style="display:none">"canny"</span><span data-if="com" style="display:none">"canny"</span><span data-if="dotnet" style="display:none">"canny"</span><span data-if="python" style="display:none">"canny"</span>, <span data-if="hdevelop" style="display:inline">'sobel_fast'</span><span data-if="c" style="display:none">"sobel_fast"</span><span data-if="cpp" style="display:none">"sobel_fast"</span><span data-if="com" style="display:none">"sobel_fast"</span><span data-if="dotnet" style="display:none">"sobel_fast"</span><span data-if="python" style="display:none">"sobel_fast"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Alpha" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Alpha</span><span data-if="c" style="display:none">Alpha</span><span data-if="cpp" style="display:none">Alpha</span><span data-if="com" style="display:none">Alpha</span><span data-if="dotnet" style="display:none">alpha</span><span data-if="python" style="display:none">alpha</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Filter parameter: small values result in strong
smoothing, and thus less detail (opposite for
'canny').</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1.1</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>0.01</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>0.1</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>Alpha &gt; 0.0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="NMS" class="parname"><b><code><span data-if="hdevelop" style="display:inline">NMS</span><span data-if="c" style="display:none">NMS</span><span data-if="cpp" style="display:none">NMS</span><span data-if="com" style="display:none">NMS</span><span data-if="dotnet" style="display:none">NMS</span><span data-if="python" style="display:none">nms</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Non-maximum suppression ('none', if not desired).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'nms'</span>
    <span data-if="c" style="display:none">"nms"</span>
    <span data-if="cpp" style="display:none">"nms"</span>
    <span data-if="com" style="display:none">"nms"</span>
    <span data-if="dotnet" style="display:none">"nms"</span>
    <span data-if="python" style="display:none">"nms"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'hvnms'</span><span data-if="c" style="display:none">"hvnms"</span><span data-if="cpp" style="display:none">"hvnms"</span><span data-if="com" style="display:none">"hvnms"</span><span data-if="dotnet" style="display:none">"hvnms"</span><span data-if="python" style="display:none">"hvnms"</span>, <span data-if="hdevelop" style="display:inline">'inms'</span><span data-if="c" style="display:none">"inms"</span><span data-if="cpp" style="display:none">"inms"</span><span data-if="com" style="display:none">"inms"</span><span data-if="dotnet" style="display:none">"inms"</span><span data-if="python" style="display:none">"inms"</span>, <span data-if="hdevelop" style="display:inline">'nms'</span><span data-if="c" style="display:none">"nms"</span><span data-if="cpp" style="display:none">"nms"</span><span data-if="com" style="display:none">"nms"</span><span data-if="dotnet" style="display:none">"nms"</span><span data-if="python" style="display:none">"nms"</span>, <span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Low" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Low</span><span data-if="c" style="display:none">Low</span><span data-if="cpp" style="display:none">Low</span><span data-if="com" style="display:none">Low</span><span data-if="dotnet" style="display:none">low</span><span data-if="python" style="display:none">low</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Lower threshold for the hysteresis threshold operation
(negative, if no thresholding is desired).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>20</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>5, 10, 15, 20, 25, 30, 40</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>1</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>5</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>Low != 0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="High" class="parname"><b><code><span data-if="hdevelop" style="display:inline">High</span><span data-if="c" style="display:none">High</span><span data-if="cpp" style="display:none">High</span><span data-if="com" style="display:none">High</span><span data-if="dotnet" style="display:none">high</span><span data-if="python" style="display:none">high</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Upper threshold for the hysteresis threshold operation
(negative, if no thresholding is desired).</p>
<p class="pardesc"><span class="parcat">Default:
      </span>40</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>10, 15, 20, 25, 30, 40, 50, 60, 70</p>
<p class="pardesc"><span class="parcat">Minimum increment:
      </span>1</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>5</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>High &gt;= Low</code></p>
</div>
<div data-if="hdevelop" style="display:inline">
<h2 id="sec_example_hdevelop">例程 (HDevelop)</h2>
<pre class="example">
read_image(Image,'fabrik')
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)
</pre>
</div>
<div data-if="c" style="display:none">
<h2 id="sec_example_c">例程 (C)</h2>
<pre class="example">
read_image(&amp;Image,"fabrik");
edges_image(Image,&amp;Amp,&amp;Dir,"lanser2",0.5,"none",-1,-1);
hysteresis_threshold(Amp,&amp;Margin,20,30,30);
</pre>
</div>
<div data-if="cpp" style="display:none">
<h2 id="sec_example_cpp">例程 (HDevelop)</h2>
<pre class="example">
read_image(Image,'fabrik')
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)
</pre>
</div>
<div data-if="com" style="display:none">
<h2 id="sec_example_com">例程 (HDevelop)</h2>
<pre class="example">
read_image(Image,'fabrik')
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)
</pre>
</div>
<div data-if="dotnet" style="display:none">
<h2 id="sec_example_dotnet">例程 (HDevelop)</h2>
<pre class="example">
read_image(Image,'fabrik')
edges_image(Image,Amp,Dir,'lanser2',0.5,'none',-1,-1)
hysteresis_threshold(Amp,Margin,20,30,30)
</pre>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameters are correct
and no error occurs during execution.  If the input is empty the
behavior can be set via
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system('no_object_result',&lt;Result&gt;)</span><span data-if="c" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span><span data-if="cpp" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="com" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="dotnet" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="python" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span></code></a>.  If
necessary, an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="info_edges.html"><span data-if="hdevelop" style="display:inline">info_edges</span><span data-if="c" style="display:none">info_edges</span><span data-if="cpp" style="display:none">InfoEdges</span><span data-if="com" style="display:none">InfoEdges</span><span data-if="dotnet" style="display:none">InfoEdges</span><span data-if="python" style="display:none">info_edges</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="threshold.html"><span data-if="hdevelop" style="display:inline">threshold</span><span data-if="c" style="display:none">threshold</span><span data-if="cpp" style="display:none">Threshold</span><span data-if="com" style="display:none">Threshold</span><span data-if="dotnet" style="display:none">Threshold</span><span data-if="python" style="display:none">threshold</span></a></code>, 
<code><a href="hysteresis_threshold.html"><span data-if="hdevelop" style="display:inline">hysteresis_threshold</span><span data-if="c" style="display:none">hysteresis_threshold</span><span data-if="cpp" style="display:none">HysteresisThreshold</span><span data-if="com" style="display:none">HysteresisThreshold</span><span data-if="dotnet" style="display:none">HysteresisThreshold</span><span data-if="python" style="display:none">hysteresis_threshold</span></a></code>, 
<code><a href="close_edges_length.html"><span data-if="hdevelop" style="display:inline">close_edges_length</span><span data-if="c" style="display:none">close_edges_length</span><span data-if="cpp" style="display:none">CloseEdgesLength</span><span data-if="com" style="display:none">CloseEdgesLength</span><span data-if="dotnet" style="display:none">CloseEdgesLength</span><span data-if="python" style="display:none">close_edges_length</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="sobel_dir.html"><span data-if="hdevelop" style="display:inline">sobel_dir</span><span data-if="c" style="display:none">sobel_dir</span><span data-if="cpp" style="display:none">SobelDir</span><span data-if="com" style="display:none">SobelDir</span><span data-if="dotnet" style="display:none">SobelDir</span><span data-if="python" style="display:none">sobel_dir</span></a></code>, 
<code><a href="frei_dir.html"><span data-if="hdevelop" style="display:inline">frei_dir</span><span data-if="c" style="display:none">frei_dir</span><span data-if="cpp" style="display:none">FreiDir</span><span data-if="com" style="display:none">FreiDir</span><span data-if="dotnet" style="display:none">FreiDir</span><span data-if="python" style="display:none">frei_dir</span></a></code>, 
<code><a href="kirsch_dir.html"><span data-if="hdevelop" style="display:inline">kirsch_dir</span><span data-if="c" style="display:none">kirsch_dir</span><span data-if="cpp" style="display:none">KirschDir</span><span data-if="com" style="display:none">KirschDir</span><span data-if="dotnet" style="display:none">KirschDir</span><span data-if="python" style="display:none">kirsch_dir</span></a></code>, 
<code><a href="prewitt_dir.html"><span data-if="hdevelop" style="display:inline">prewitt_dir</span><span data-if="c" style="display:none">prewitt_dir</span><span data-if="cpp" style="display:none">PrewittDir</span><span data-if="com" style="display:none">PrewittDir</span><span data-if="dotnet" style="display:none">PrewittDir</span><span data-if="python" style="display:none">prewitt_dir</span></a></code>, 
<code><a href="robinson_dir.html"><span data-if="hdevelop" style="display:inline">robinson_dir</span><span data-if="c" style="display:none">robinson_dir</span><span data-if="cpp" style="display:none">RobinsonDir</span><span data-if="com" style="display:none">RobinsonDir</span><span data-if="dotnet" style="display:none">RobinsonDir</span><span data-if="python" style="display:none">robinson_dir</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="info_edges.html"><span data-if="hdevelop" style="display:inline">info_edges</span><span data-if="c" style="display:none">info_edges</span><span data-if="cpp" style="display:none">InfoEdges</span><span data-if="com" style="display:none">InfoEdges</span><span data-if="dotnet" style="display:none">InfoEdges</span><span data-if="python" style="display:none">info_edges</span></a></code>, 
<code><a href="nonmax_suppression_amp.html"><span data-if="hdevelop" style="display:inline">nonmax_suppression_amp</span><span data-if="c" style="display:none">nonmax_suppression_amp</span><span data-if="cpp" style="display:none">NonmaxSuppressionAmp</span><span data-if="com" style="display:none">NonmaxSuppressionAmp</span><span data-if="dotnet" style="display:none">NonmaxSuppressionAmp</span><span data-if="python" style="display:none">nonmax_suppression_amp</span></a></code>, 
<code><a href="hysteresis_threshold.html"><span data-if="hdevelop" style="display:inline">hysteresis_threshold</span><span data-if="c" style="display:none">hysteresis_threshold</span><span data-if="cpp" style="display:none">HysteresisThreshold</span><span data-if="com" style="display:none">HysteresisThreshold</span><span data-if="dotnet" style="display:none">HysteresisThreshold</span><span data-if="python" style="display:none">hysteresis_threshold</span></a></code>, 
<code><a href="bandpass_image.html"><span data-if="hdevelop" style="display:inline">bandpass_image</span><span data-if="c" style="display:none">bandpass_image</span><span data-if="cpp" style="display:none">BandpassImage</span><span data-if="com" style="display:none">BandpassImage</span><span data-if="dotnet" style="display:none">BandpassImage</span><span data-if="python" style="display:none">bandpass_image</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

S.Lanser, W.Eckstein: “Eine Modifikation des Deriche-Verfahrens zur
Kantendetektion”; 13. DAGM-Symposium, München; Informatik
Fachberichte 290; Seite 151 - 158; Springer-Verlag; 1991.
<br>
S.Lanser: “Detektion von Stufenkanten mittels rekursiver Filter
nach Deriche”; Diplomarbeit; Technische Universität München,
Institut für Informatik, Lehrstuhl Prof. Radig; 1991.
<br>
J.Canny: “Finding Edges and Lines in Images”; Report, AI-TR-720;
M.I.T. Artificial Intelligence Lab., Cambridge; 1983.
<br>
J.Canny: “A Computational Approach to Edge Detection”; IEEE
Transactions on Pattern Analysis and Machine Intelligence; PAMI-8,
vol. 6; S. 679-698; 1986.
<br>
R.Deriche: “Using Canny's Criteria to Derive a Recursively
Implemented Optimal Edge Detector”; International Journal of
Computer Vision; vol. 1, no. 2; S. 167-187; 1987.
<br>
R.Deriche: “Optimal Edge Detection Using Recursive Filtering”;
Proc. of the First International Conference on Computer Vision,
London; S. 501-505; 1987.
<br>
R.Deriche: “Fast Algorithms for Low-Level Vision”; IEEE
Transactions on Pattern Analysis and Machine Intelligence; PAMI-12,
no. 1; S. 78-87; 1990.
<br>
S.Castan, J.Zhao und J.Shen: “Optimal Filter for Edge Detection
Methods and Results”; Proc. of the First European Conference on
Computer Vision, Antibes; Lecture Notes on computer Science;
no. 427; S. 12-17; Springer-Verlag; 1990.
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
